-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Refactor] Snapshot controllers #141
base: master
Are you sure you want to change the base?
[Refactor] Snapshot controllers #141
Conversation
Note, of you approve the workflow, a comment like this one will be automatically created: |
a7d9477
to
14f7603
Compare
Hi @falkTX, I concluded this pull request. Let me know if there are any missing here :) |
I don't know why, but the step that add the code coverage didn't worked. I will update this branch disabling this step, so the source will be tested, but if someone is interested in checking the coverage values it will be necessary to access the GitHub actions log. Anyway, the tests are the most important part 🙂 |
The step with error was disabled :) |
ok getting back to this, there are a few things that I dont quite agree with. I think the target split should be:
there is already a "session.py" middlewrap, which makes things even more confusing... following what tornado does I think all the web related stuff should be under "web" name, this is what mod-ui code subclasses from anyhow. while doing this we need to decide if we need to care about old duo/duox/dwarf compatibility, that still rely on python3.4 so maybe this is the breaking point for existing MOD units, and past this point they dont get mod-ui updates? would be sad if so, specially on the Dwarf that is still being produced. if we care to keep compat with those, we need to find a way to test the code changes with python3.4 compat |
with that said, do you mind if I start splitting some code into smaller pieces, following your initial ideas? need to ask as that will quickly break this PR, needing to be redone. but it would be a way to get things moving... |
Ok, there is not a problem. Actually, I prefer. So I can see what direction you will path and I can follow it.
I prefer to maintain support. Related to this project, I would like to avoid any OS changes (dwarf included) to prevent to this project increases its scope. I think that after we refactor the backend, will be more clear what the Mod team can do related to old devices.
The main problem for creating tests there isn't the Python version. The main problem is the source code itself. So I believe that the code refactoring will make easier for creating tests. |
I am sorry, maybe my comment was offensive, but it was not my intention. I tried to say that the source code is bit hard create tests and need some refactoring. |
no offense taken, source code doesnt have feelings you dont have to apologize to it. PRs always go a bit slow, depends if there are other pending high-priority tasks happening at the moment. for better or worse it is indeed the case right now again. so dont expect any work on this at least until the NAMM show is over |
sorry for lack of updates here. after some considerations we are delaying such a rework for a little bit until the next dwarf-supported release is done (so 1.14), but with good intentions. we do not want to do a rework while needing to keep backwards compatibility with python3.4 as used for the dwarf (so I go back on what I said, yes) but at the same time there are nice features that are in the current code that just need a little polishing to make them usable. would be a bit wasteful to start a big rewrite now while those are not finished.
so basically MOD will focus to get the next release out as a sorta final update using this current code-base, and then we won't bother with any new stuff for mod-ui side at all. any bugfixes can go into the "hotfix" branch. tangent to this we want to start a separate project for a "state manager" that sits between mod-host and mod-ui. for now the first thing to do is to finalize the drag&replace things, hopefully done in the next few weeks. please be on hold until that finishes, but discussion around the rework is still okay to take place of course. |
Hello, @falkTX Your idea remembers me so much my undergraduate project where I implemented something like these. There is a picture of the projects architecture:
Plugins Manager and Application are together the core that offers a single source of truth. And it is possible to extend it by the component's registration. Some examples of components:
For instance, adding support for a MOD Device could be done at the same way, creating a component, where specific devices logic would be present only in the component source code. You can read more checking the documentation and papers.
|
So, just complementing, because the mod functionalities are my main inspiration (mainly mod-host), the project has support to adding effects, removing effects, update parameters, connect audio ports and midi ports. But it is missing CV ports, for instance, because they were added later. I don't know which language you would implement the single source of truth. But I humbly request you for see the upper code, maybe it could help your in some way.
ok, sure |
Hello, @falkTX
It is the continuation from the previous pull request (#140), following your recommendations/requirements.
As you can see, I started to creating unit tests to ensure that the current behavior will maintain. I configured a Github Actions to enforce that they will be ran. Also, I disabled the IRC notifications on forks.
Let me know if you agree with this pull request scope, so I can continue to contributing.
Snapshot progress